/**
 * 桥接模式(Bridge Pattern)：将抽象部分与它的实现部分分离，使它们都可以独立地变化。
 * 它是一种对象结构型模式，又称为柄体(Handle and Body)模式或接口(Interface)模式。
 * <p>
 * 桥接模式是一种很实用的结构型设计模式，如果软件系统中某个类存在两个独立变化的维度，
 * 通过该模式可以将这两个维度分离出来，使两者可以独立扩展，让系统更加符合“单一职责原则”。
 * 与多层继承方案不同，它将两个独立变化的维度设计为两个独立的继承等级结构，
 * 并且在抽象层建立一个抽象关联，该关联关系类似一条连接两个独立继承结构的桥，故名桥接模式。
 * <p>
 * @see 一个例子：
 * 设想如果要绘制矩形、圆形、椭圆、正方形，我们至少需要4个形状类，但是如果绘制的图形需要具有不同的颜色，
 * 如红色、绿色、蓝色等，此时至少有如下两种设计方案：
 * <p>
 * 第一种设计方案是为每一种形状都提供一套各种颜色的版本。
 * 第二种设计方案是根据实际需要对形状和颜色进行组合
 * 对于有两个变化维度（即两个变化的原因）的系统，采用方案二来进行设计系统中类的个数更少，
 * 且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系，
 * 从而降低了类与类之间的耦合，减少了代码编写量。
 * Created by yangrd on 2017/5/12.
 */
package cn.sunxyz.struct.bridge;